package com.efast.dmom.mgmt.service.les;

import java.util.List;

import com.efast.dmom.mgmt.entity.les.TwOutbTaskDetail;
import com.efast.dmom.mgmt.entity.les.TwOutbTaskHeader;
import com.efast.dmom.mgmt.utils.Assist;

/**
 * @author chlp
 */
public interface TwOutbTaskHeaderService {

	/**
	 * 确认捡货：更新header和detail状态。只能整单确认。
	 * 
	 * @param twOutbTaskHeader
	 *            twOutbTaskHeader
	 */
	void confirmPicking(TwOutbTaskHeader twOutbTaskHeader);

	/**
	 * 确认捡货【针对pda明细拣货，可以修改拣货数量的情况】：更新header和detail状态。只能整单确认。
	 *
	 * @param pdaTwOutbTaskHeaderDetailBean
	 *            pdaTwOutbTaskHeaderDetailBean
	 */
	void confirmPickingEdit(List<TwOutbTaskDetail> reqListTwOutbTaskDetail);

	/**
	 * 取消捡货：更新header和detail状态。只能整单取消。
	 * 
	 * @param enti
	 */
	int cancelPicking(TwOutbTaskHeader enti);

	/**
	 * 获得TwOutbTaskHeader数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getTwOutbTaskHeaderRowCount(Assist assist);

	/**
	 * 获得TwOutbTaskHeader数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<TwOutbTaskHeader> selectTwOutbTaskHeader(Assist assist);

	/**
	 * 获得一个TwOutbTaskHeader对象,以参数TwOutbTaskHeader对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	TwOutbTaskHeader selectTwOutbTaskHeaderByObj(TwOutbTaskHeader obj);

	/**
	 * 通过TwOutbTaskHeader的id获得TwOutbTaskHeader对象
	 * 
	 * @param id
	 * @return
	 */
	TwOutbTaskHeader selectTwOutbTaskHeaderById(Integer id);

	/**
	 * 插入TwOutbTaskHeader到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertTwOutbTaskHeader(TwOutbTaskHeader value);

	/**
	 * 插入TwOutbTaskHeader中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNonEmptyTwOutbTaskHeader(TwOutbTaskHeader value);

	/**
	 * 批量插入TwOutbTaskHeader到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertTwOutbTaskHeaderByBatch(List<TwOutbTaskHeader> value);

	/**
	 * 通过TwOutbTaskHeader的id删除TwOutbTaskHeader
	 * 
	 * @param id
	 * @return
	 */
	int deleteTwOutbTaskHeaderById(Integer id);

	/**
	 * 通过辅助工具Assist的条件删除TwOutbTaskHeader
	 * 
	 * @param assist
	 * @return
	 */
	int deleteTwOutbTaskHeader(Assist assist);

	/**
	 * 通过TwOutbTaskHeader的id更新TwOutbTaskHeader中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateTwOutbTaskHeaderById(TwOutbTaskHeader enti);

	/**
	 * 通过辅助工具Assist的条件更新TwOutbTaskHeader中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateTwOutbTaskHeader(TwOutbTaskHeader value, Assist assist);

	/**
	 * 通过TwOutbTaskHeader的id更新TwOutbTaskHeader中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNonEmptyTwOutbTaskHeaderById(TwOutbTaskHeader enti);

	/**
	 * 通过辅助工具Assist的条件更新TwOutbTaskHeader中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNonEmptyTwOutbTaskHeader(TwOutbTaskHeader value, Assist assist);

}